디컴파일러(Decompiler)c와 java와 같이 컴파일로 만들어진 프로그램을 역으로 분석하여 전체적인 시스템의 동작 원리를 이해하는 목적으로 활용된다.
디컴파일러는 기계어에 가까운 프로그램을 기존의 고급 프로그래밍 언어의 소스코드로 변형한다.
디컴파일러를 활용한다고 해도 기존의 소스코드를 완전히 복구하기는 어려움
dotPeek(C# decompiler)
dotPeek은 매우 강력한 C# decompiler로 난독화 과정을 거치지 않았다면 원형과 유사하게 복구할 수 있다.
원형과 유사한 decompiler 파일
따라서 난독화 과정이 필요하다.EazFuscator(C# 난독화 도구)
난독화 과정을 거치면 위와 같이 쉽게 해석이 불가능한 코드로 바꿔서 release 된다.
토큰 기반의 인증
JWT와 같은 토큰 기반의 인증 시스템을 적용하여 클라이언트 사용자를 인증할 수 있다.
서버에서 사용자에 맞게 토큰을 생성한 뒤에 사용자에게 보낸다.
이후에 클라이언트는 해당 토큰을 이용해 서버에 접근할 수 있다.
SSL 인증서( similar with https)
토큰 기반의 인증을 사용하는 경우에도 중간에서 패킷을 가로채어 토큰 내역을 확인할 수 있다
중간에서 다른 플레이어의 패킷을 가로채도 토큰을 탈취할 수 없도록 SSL 인증서를 적용한다.